Embodiments herein generally relate to processing print jobs and more particularly to processes that perform parallel raster image processing using multiple separate processors.
Before a print job is sent to a printing device, various processing steps need to be performed on the print job to allow the printing device to know where and how to make the various markings on the sheet of paper. One such process is known as raster image processing (RIP) and this processing determines (on a pixel-by-pixel basis) which pixels will have which color.
Raster image processing can require extensive computing resources. Therefore, various methodologies and systems have been developed in order to cope with the processing time required. One methodology stores components or objects that are reused at different points in the print job. A component or an object is some unit (image, portion of text, graph, etc.) that appears identically in different portions of the print job. Such systems reduce processing time by reusing such objects without having to perform raster image processing on the object each time it is needed. Objects that may be reused are stored in a reusable document component repository, or cache, until needed.
Additional methodologies reduce processing time by dividing the print job into different print job chunks and having multiple processors perform raster image processing simultaneously on the different print job chunks. Further description of dividing print jobs into chunks may be found in U.S. Pat. No. 7,161,705, the disclosure of which is incorporated herein by reference.
However, existing reusable document component repositories are limited to a single-writer single-reader model. A single RIP can write reusable components into the cache, and then later reuse them. Page parallel raster image processing is used to accelerate some jobs, but with caching disabled. Customers are sometimes given the choice of whether to RIP a print job in parallel or with caching, but need to choose based on their knowledge of the job. Some jobs run faster one way, others run faster the other way.